#!/usr/bin/env python
# coding=utf-8

"""
    secchecksuite/scenefactory.py
    scenefactory.py for local or remote to execute plugins
    :CopyRight(c) 2019 Inspur Electronic Information Industry Co.,Ltd
"""


class PluginExeScene(object):
    """
    base class for plugins execute scene
    Attributes:
        None
    """

    def GetPluginExeScene(self):
        pass

    def SetPluginExeScene(self):
        pass

    def start(self):
        pass


class LocalExePluginScene(PluginExeScene):
    """
    execute plugins in localhost
    Attributes:
        None
    """

    def GetPluginExeScene(self):
        return "local"

    def SetPluginExeScene(self):
        pass

    def start(self):
        pass


class RemoteExePluginScene(PluginExeScene):
    """
    execute plugins in remote host
    Attributes:
        None
    """

    def GetPluginExeScene(self):
        return "remote"

    def SetPluginExeScene(self):
        pass

    def start(self):
        pass


class ExePluginFactory:
    """
    execute plugins scene factory base class
    Attributes:
        None
    """

    def createPlugin(self):
        pass


class LocalExePlugin(ExePluginFactory):
    """
    execute plugins scene factory base class
    Attributes:
        None
    """

    def createPlugin(self):
        return LocalExePluginScene()


class RemoteExePlugin(ExePluginFactory):
    """
    execute plugins scene factory base class
    Attributes:
        None
    """

    def createPlugin(self):
        return RemoteExePluginScene()
